# excel文件处理
#   xlrd/xlwt/pandas/openpyxl第三方库,组要使用openpyxl
#   安装 pip install openpyxl

import openpyxl

#   涉及的三大组件
#       1、工作簿   包含多个sheet
#       2、工作表   具体的sheet
#       3、单元格   具体单元格
"""
1、创建excel文件
2、读取excel文件
3、编辑excel文件
"""

def createExcel():
    """
    创建excel文件，并写入文件
    :return:
    """
    wk=openpyxl.Workbook()  #创建一个工作簿
    sheet=wk.active   #获取当前工作表
    sheet.cell(1,1).value = "username"    #写数据到单元格username  第1行第1列
    sheet.cell(1,2).value = "class"    #写数据到单元格class  第1行第2列
    sheet.cell(1,3).value = "address"  # 写数据到单元格address  第1行第3列
    wk.save("userinfo.xlsx") #命名工作簿的名字为userinfo.xlsx,然后保存，若是绝对路径，则在指定路劲下

def readExcel(filepath):
    """
    读取excel文件
    :return:
    """
    wk = openpyxl.load_workbook(filepath)    #获取指定路径下的工作簿
    sheet1 =wk["Sheet"]  #返回指定的工作表
    location=sheet1.cell(1,1)#获取单元格的坐标
    print(location)
    value = sheet1.cell(1,1).value  #获取单元格内的值
    value2 = sheet1.cell(2, 1).value
    print(value,value2)
    rows = sheet1.max_row   #获取工作表的行数
    cols = sheet1.max_column #获取工作表的列数
    print(rows,cols)
    dataslist=[]
    for row in range(1,rows+1):  #获取表内所有数据
        for col in range(1,cols+1):
            value3=sheet1.cell(row,col).value
            print(value3)
            dataslist.append(value3)
    return dataslist
def printExcel(filepath):
    data=readExcel(filepath)
    return data
def editExcel(filepath):
    """
    编辑excel文件
        1.添加一个新的sheet
        2.修改某个单元格的数据
    :return:
    """
    wk = openpyxl.load_workbook(filepath)   #加载一个工作簿
    mysheet = wk.create_sheet("mysheet")    #创建一个新的工作表
    mysheet.cell(1,1).value = "123456写入数据"  #写入数据”123456写入数据“
    mysheet.cell(1,2).value = "DD数据"
    mysheet.cell(1,2).value = "写入数据"
    wk.save(filepath)   #保存数据

def deleteExcel(filepath):
    """删除指定文件的工作表"""
    wk = openpyxl.load_workbook(filepath)
    wk.remove(wk["mysheet"])    #或del wk["mysheet"]
    wk.save(filepath)

def addManyData(filepath):
    """
    一次性插入多个数据到工作表中
    :return:
    """
    wk = openpyxl.load_workbook(filepath)
    mysheet = wk.create_sheet()
    datalist=['cn','hefan','migee','1234']
    mysheet.append(datalist)
    wk.save(filepath)

if __name__=='__main__':
    # createExcel()
    dataExcel = printExcel("userinfo.xlsx")
    print(dataExcel)
    editExcel("userinfo.xlsx")
    deleteExcel("userinfo.xlsx")
    addManyData("userinfo.xlsx")



























